/*----------------code for Nielsen--------------------*/	
var nn_undefined;

function nn_isNull(object) {
  return nn_undefined == object || object == null;
}


var nn_domainSuffixes = [ "com", "net", "org", "biz", "info", "gov", "edu", "mil" ];

function nn_arrayContains(nn_array, nn_token) {
  for (var nn_i = 0; nn_i < nn_array.length; nn_i++) {
    if (nn_array[nn_i] == nn_token) {
      return true;
    }
  }
  return false;
}

function nn_removePort(nn_domain) {
  var nn_colonIndex = nn_domain.lastIndexOf(':');
  if (nn_colonIndex > 0) {
    return  nn_domain.substring(0, nn_colonIndex);
  }
  return nn_domain;
}

function nn_getMinimumDomain(nn_domain) {
  if (nn_isNull(nn_domain)) {
    return null;
  }

  nn_domain = nn_domain.toLowerCase();
  nn_domain = nn_removePort(nn_domain);

  var nn_index = nn_domain.length;
  while (3 < nn_index && nn_domain.charAt(nn_index - 3) == '.') {
    nn_index -= 3;
  }

  var nn_previousIndex = nn_index;
  nn_index = nn_domain.lastIndexOf('.', nn_index - 1);
  var nn_token = nn_domain.substring(nn_index + 1, nn_previousIndex);
  if (nn_arrayContains(nn_domainSuffixes, nn_token) && nn_index > 0) {
    nn_previousIndex = nn_index;
    nn_index = nn_domain.lastIndexOf('.', nn_index - 1);
  }

  if (nn_index == -1 || nn_domain.charAt(nn_index) == '.') {
    nn_index ++;
  }
  if (nn_index == nn_previousIndex) {
    return "." + nn_domain;
  }
  return "." + nn_domain.substring(nn_index);
}

var nn_THREE_YEARS_IN_MILLIS = (1000 * 60 * 60 * 24 * 365 * 3);

/* public */ function nn_Cookie(name) {

  /* public */
  this.setCookie = nn_Cookie_setCookie;
  this.getCookie = nn_Cookie_getCookie;
  this.expireCookie = nn_Cookie_expireCookie;

  /* private */
  this.m_name = name;
}

/* private */ function nn_Cookie_getExpirationDate(expireDate) {
  if (!nn_isNull(expireDate)) {
    return expireDate;
  } else {
    return new Date(new Date().getTime() + nn_THREE_YEARS_IN_MILLIS);
  }
}

/* private */ function nn_Cookie_getExpirationDateAsString(expireDate) {
  return nn_Cookie_getExpirationDate(expireDate).toGMTString();
}

function nn_Cookie_createCookieDescriptionWithoutDomain(name, value, expireDate) {
  var cookieDescription = name + "=" + escape(value);
  cookieDescription += "; path=/";
  cookieDescription += "; expires=" + nn_Cookie_getExpirationDateAsString(expireDate);
  return cookieDescription;
}

function nn_Cookie_createCookieDescription(name, value, expireDate, domain) {
  var cookieDescription = nn_Cookie_createCookieDescriptionWithoutDomain(name, value, expireDate);
  if (nn_isNull(domain) && document.domain) {
    domain = document.domain;
  }
  if (!nn_isNull(domain)) {
    cookieDescription += "; domain=" + escape(nn_getMinimumDomain(domain));
  }
  return cookieDescription;
}

/* public */ function nn_Cookie_setCookie(name, value, expireDate, domain) {
  nn_Cookie_expireCookie(name);
  document.cookie = nn_Cookie_createCookieDescription(name, value, expireDate, domain);
  if (nn_isNull(nn_Cookie_getCookie(name))) {
    document.cookie = nn_Cookie_createCookieDescriptionWithoutDomain(name, value, expireDate);
  }
}

/* private */ function nn_Cookie_getCookie(name) {
  var key = name + "=";
  var startOfCookie = document.cookie.indexOf("; " + key);
  if (-1 != startOfCookie) {
    startOfCookie += 2;
  } else if (0 == document.cookie.indexOf(key)) {
    startOfCookie = 0;
  } else {
    return null;
  }
  var endOfCookie = document.cookie.indexOf(";", startOfCookie);
  if (endOfCookie == -1) {
    endOfCookie = document.cookie.length;
  }
  var value = document.cookie.substring(startOfCookie + key.length, endOfCookie);
  value = unescape(value);
  return (value != "") ? value : null;
}

/* public */ function nn_Cookie_expireCookie(name, domain) {
  var expiredTime = new Date(new Date().getTime() - 1000*60*60);
  document.cookie = nn_Cookie_createCookieDescription(name, "", expiredTime, domain);
  if (!nn_isNull(nn_Cookie_getCookie(name))) {
    document.cookie = nn_Cookie_createCookieDescriptionWithoutDomain(name, "", expiredTime);
  }
}

var nn_DATE_THROTTLE_COOKIE_NAME = "nnselect";
var nn_ONE_DAY_IN_MILLIS = 1000 * 60 * 60 * 24;

function nn_DateThrottle() {
  // public
  this.shouldThrottle = nn_DateThrottle_shouldThrottle;

  // private
  this.getOrCreate = nn_DateThrottle_getOrCreate;
  this.getCookie = nn_DateThrottle_getCookie;
  this.createCookie = nn_DateThrottle_createCookie;
  this.updateCookie = nn_DateThrottle_updateCookie;
  this.createCookieValue = nn_DateThrottle_createCookieValue;
  this.m_cookieName = nn_DATE_THROTTLE_COOKIE_NAME;
}

/* public */ function nn_DateThrottle_shouldThrottle() {
  var cookieValue = parseInt(this.getOrCreate());
  var now = new Date().getTime();
  var dateToStartSurvey = cookieValue + (nn_ONE_DAY_IN_MILLIS * 7);
  return (now < dateToStartSurvey);
}

/* private */ function nn_DateThrottle_getOrCreate() {
  var cookie = this.getCookie();
  if (nn_isNull(cookie)) {
    cookie = this.createCookie(); 
  }
  return cookie;
}

/* private */ function nn_DateThrottle_getCookie() {
  return nn_Cookie_getCookie(this.m_cookieName);
}

/* private */ function nn_DateThrottle_createCookie() {
  var now = new Date();
  var offset = nn_ONE_DAY_IN_MILLIS * -8;
  var cookieValue = this.createCookieValue(now, offset);
  nn_Cookie_setCookie(this.m_cookieName, cookieValue);
  return cookieValue;
}

/* private */ function nn_DateThrottle_updateCookie() {
  var now = new Date();
  var cookieValue = this.createCookieValue(now, 0);
  nn_Cookie_expireCookie(this.m_cookieName);
  nn_Cookie_setCookie(this.m_cookieName, cookieValue);
  return cookieValue;
}

/* private */ function nn_DateThrottle_createCookieValue(date, offset) {
  var cookieValue = date.getTime() + offset;
  return cookieValue.toString();
}

function nn_write_document(str) {
  document.write(str);
}

function nn_survey(visitorid) {
  var nn_dateThrottle = new nn_DateThrottle();
  if ((visitorid % 64 == 0) && !nn_dateThrottle.shouldThrottle()) {
    nn_dateThrottle.updateCookie();
    nn_write_document("<iframe src='http://survey.nnselect.com/survey/confirm_panelist_119.html' name='nn_frame' height='0' width='0' scrolling='no' frameborder='0' marginWidth='0' marginHeight='0'></iframe>");
  }
}

function nn_build_ping_url(filename) {
  var nn_now = new Date();
  var nn_title;
  if (!window.encodeURI) {
    nn_title = escape(document.title);
  } else {
    nn_title = window.encodeURI(document.title);
  }
  var nn_imageUrl =
    "http://ping.nnselect.com/" + filename +
    "?d=" + nn_now.getTime() +
    "&c=119" +
    "&u=" + escape(document.URL) +
    "&t=" + nn_title;
  return nn_imageUrl;
}

function nn_send_ping(url) {
  if (document.images) {
    var nn_image = new Image();
    nn_image.src = url;
  } else {
    nn_write_document("<img src='" + url + "' height='1' width='1'>");
  }
}

function nn_simple_ping() {
  nn_send_ping(nn_build_ping_url("ping.gif"));
}

function nn_ping_and_set_local_cookie() {
  nn_write_document("<scr" + "ipt language='javascript' src='" + nn_build_ping_url("sping.js") + "'></scr" + "ipt>");
}

function nn_set_visitor_cookie(cookieValue) {
  nn_Cookie_setCookie("nn_V", cookieValue);
  nn_survey(cookieValue);
}

function nn_survey_main() {
  var nn_cookieValue = nn_Cookie_getCookie("nn_V");
  if (!nn_isNull(nn_cookieValue)) {
    if ((nn_cookieValue % 64) == 0) {
      nn_simple_ping();
      nn_survey(nn_cookieValue);
    }
  }
}

nn_survey_main();

/*----------------code for Nielsen--------------------*/ 

/*----------------code for Sohu.com--------------------*/

  sohu_main();
  
  function sohu_main()
  {
  	var now = new Date().getTime();
  	var datestr=escape(now*1000+Math.round(Math.random()*1000));
  	var imageUrl ="http://pv.sohu.com/pv.gif" +"?t?=" + datestr + "?r?="+document.referrer;
  
  	setsuvcookie();
 
        if(top.location==self.location)
       {               
                if (document.images) {
                var myImage = new Image();
                myImage.src = imageUrl;
                } else {
                document.write("<img src='" + imageUrl + "' height='1' width='1'>");
                }
        } 		
  }
  
  		
  function setsuvcookie()  
  {	
  	//var domainstr;
  	var  cv=new Date().getTime();
	var  cvstr=escape(cv*1000+Math.round(Math.random()*1000));
	
        var bgn = document.cookie.indexOf("SUV=");

        if (bgn<0)
  	{ 		
        	if(document.domain.indexOf(".sohu.com") > 0)
		{
			var  COOKIESPAN = 1000*86400*365*5;		
        		var  ckexp=new Date( cv + COOKIESPAN );
        
                        document.cookie="SUV="+cvstr+"; path=/; expires="+ckexp.toGMTString()+"; domain=sohu.com";
                        
			return;
		}
        		
		document.write("<scr" + "ipt language='javascript' src='http://suvset.sohu.com/suv/setcookie.js?t=" + cvstr + "'></scr" + "ipt>");	
  	}
  	else
  	{
  		if ( 2 == Math.round(Math.random()* 10))
                {
                      imageUrl ="http://"+document.cookie.substr(bgn+11,5)+escape(new Date().getTime()).substr(7,6)+".dom.sohu.com/pv.gif?t?=1";
                }
        }
   }
/*----------------code for Sohu.com--------------------*/
